نوشته شده توسط : افشین رفوآ
تاریخ انتشار : سه شنبه 28 بهمن 1393 | نظرات ()
نوشته شده توسط : افشین رفوآ

کلید اصلی:

برای ایجاد یک ستون اصلی در sql از کلیدواژه ی PRIMARY KEY  باید استفاده کنید. مثال:

CREATE TABLE Persons

(

    PersonID int identity(1,1) PRIMARY KEY NOT NULL,

    FirstName nvarchar(20),

    LastName nvarchar(20) NOT NULL

);

محدودیت های کلید اصلی:

شما همچنین می توانید یک کلید اولیه به عنوان یک محدودیت ایجاد کنید،فرمولی که استفاده میشود به صورت زیر است.

CONSTRAINT PrimaryKeyName PRIMARY KEY(ColumnName)

و این یک مثال است:

CREATE TABLE Persons
(
    PersonID int identity(1,1) NOT NULL,
    FirstName nvarchar(20),
    LastName nvarchar(20) NOT NULL,
    CONSTRAINT PrimKeyPeople PRIMARY KEY(PersonID)
);

بر اساس یک کنوانسیون یا سنت اسمی که برای کلید اصلی انتخاب میشود به صورت(pk_table name) تعریف میشود،یک مثال:

USE Exercise2;
GO
 
CREATE TABLE Persons
(
    PersonID int identity(1,1) NOT NULL,
    FirstName nvarchar(20),
    LastName nvarchar(20) NOT NULL,
    CONSTRAINT PK_Persons PRIMARY KEY(PersonID)
);
GO

 

 

کلید خارجی:

برای ایجاد کلید خارجی در sql فرمول پایه ای که استفاده میشود به صورت زیر است:

CREATE TABLE Persons
(
    PersonID int identity(1,1) PRIMARY KEY NOT NULL,
    FirstName nvarchar(20),
    LastName nvarchar(20) NOT NULL,
    GenderID int NULL FOREIGN KEY REFERENCES Genders(GenderID)
);

محدودیت برای کلید خارجی:

برای ایجاد کلید خارجی محدودیتی وجود دارد، از کلید واژه ی CONSTRAINT استفاده کرده و ادامه به صورتی که در بالا گفته شد می باشد .

 مثال:

CREATE TABLE Persons
(
    PersonID int identity(1,1) PRIMARY KEY NOT NULL,
    FirstName nvarchar(20),
    LastName nvarchar(20) NOT NULL,
    GenderID int NULL CONSTRAINT FKGenders
                       FOREIGN KEY REFERENCES Genders(GenderID)
);

اضافه کردن یک ستون به جدول در sql

برای اضافه کردن یک ستون جدید به جدول از فرمول زیر استفاده میشود:

ALTER TABLE TableName
ADD ColumnName Properties

مثال:

ALTER TABLE StaffMembers
ADD Address varchar(100) NULL
GO

وقتی که این کد اجرا میشود یک ستون جدید به نام آدرس با نوع داده ای varchar با حداکثر طول 100 کاراکتر که به صورت خالی پر شده است باید به جدولی که StaffMembers نام دارد اضافه شود

برای استفاده از کد نمونه،ابتدا ویندوز یک پرس و جوی خالی نمایش میدهد و بعد یک قالب Explorer نمایش میدهد.برای گسترش گره ی جدول،در زیر جدول،بکشید ستون اضافه شده را و بیاندازید آن را در پنجره ی پرس و جو ها سپس پاک کنید بخش هایی از کد که مورد نیاز شما نیست و نگهداری کنید تنها بخش هایی را که مورد نیاز شما است در جدول تازه ایجاد شده.

 مثال:

--==========================================================================

-- Add column template

--

-- This template creates a table, then it adds a new column to the table.

--==========================================================================

USE

GO

 

-- Add a new column to the table

ALTER TABLE

        ADD

           

           

GO

 

 

برای یادگیری بیشتر SQL SERVER به لینک زیر رجوع کنید:

آموزش SQL

 


 



:: برچسب‌ها: آموزش sql , آموزش SQL SERVER , آموزش sql server 2008 , اموزش sql , آموزش SQL SERVER 2012 ,
:: بازدید از این مطلب : 254
|
امتیاز مطلب : 15
|
تعداد امتیازدهندگان : 3
|
مجموع امتیاز : 3
تاریخ انتشار : پنج شنبه 24 اسفند 1391 | نظرات ()
نوشته شده توسط : افشین رفوآ

 ایجاد پایگاه داده

برای ایجاد پایگاه داده از فرمول زیر استفاده کنید:

CREATE DATABASE BethesdaCarRental;

اگر می خواهید نام پایگاه داده بصورت کلمات مختلف باشد آن کلمات را بصورت زیر در براکت می گذاریم:

CREATE DATABASE [Bethesda Car Rental];

برای شروع از یک نمونه ، کد پنجره پرس و جو Query را باز کرده سپس از منوی view  پنجره Template Explorer را باز می کنیم و قسمت Database را گسترش Expand می دهیم و به قسمت Create Database را در پنجره query , drag می کنیم

-- =============================================
-- Create database template
-- =============================================
USE master
GO
 
-- Drop the database if it already exists
IF  EXISTS (
        SELECT name 
               FROM sys.databases 
               WHERE name = N''
)
 
CREATE DATABASE 
GO

یا به طور عینی برای ایجاد یک database  , Microsoft SQL Server Management Studio  را باز می کنیم در پنجره Object Explorer قسمت نام سرور را expand می کنیم تا به نود Database برسیم سپس روی Databases کلیک راست کرده و روی New Database  کلیک می کنیم

 

در جعبه متن نام، نام مورد نظر از پایگاه داده را وارد کنید به عنوان مثال

 

سپس خواص دیگر از پایگاه داده جدید را مشخص کنید:

 

برای یادگیری بیشتر sql به سایت زیر برین:

آموزش SQL Server



:: برچسب‌ها: آموزش sql , آموزش SQL SERVER , آموزش sql server 2008 , آموزش SQL SERVER 2012 , آموزش sql server 2008 r2 ,
:: بازدید از این مطلب : 203
|
امتیاز مطلب : 9
|
تعداد امتیازدهندگان : 3
|
مجموع امتیاز : 3
تاریخ انتشار : پنج شنبه 5 بهمن 1391 | نظرات ()
نوشته شده توسط : افشین رفوآ

آموزش SQL

 

مقدمه :‌
كاربرد روز افزون بانك اطلاعاتي SQL مرا بر آن داشت تا مطالبي هر چند كوتاه جهت خوانندگان محترم سايت تهيه نماييم. قبلا از هر چيز لازم به ذكر است كه مطالب ذيل در حد آشنايي بوده و دوستان براي دستيابي به تكنيكهاي بيشتر مي بايست از كتابهاي مرجع و Book online خود SQL Server استفاده نمايند. در مطالب زير كه سلسله وار مباحث SQL Server  را مرور خواهيم كرد , سعي شده تا ابتدا مطالب مقدماتي جهت آشنايي آورده شود و سپس اگر عمري باقي بود به مطالب پيشرفته آن بپردازيم. همچنين براي يادآوري خدمت دوستان ابتدا مرور سريعي بر چند دستور SQL كه كاربرد بيشتري دارند خواهيم پرداخت و سپس به SQL Server  و مطالب آن خواهيم پرداخت . مطالب زير اكثرا از كتاب Microsoft SQL Server 7.0 Database Implementation Training  انتخاب گرديده است . اين كتاب به همراه CD‌آموزش آن به عنوان يك مرجع براي امتحانات مايكروسافت استفاده مي‌شود.
جداول بكار رفته نيز همگي در SQL Server 7.0 در Database Northwind موجود هستند.

 

دستور Select

 

اين دستور كه دستوري مستقل نيست و حتما بايد با اجزايي بكار رود جهت ساخت پرس و جو بر روي بانك اطلاعاتي بكار مي‌رود و ركوردهايي كه با شرايط اين دستور همخوان باشد به عنوان نتيجه پرس و جو برمي‌گرداند .  چهار كلمه كليدي وجود دارند كه بخشهاي ارزشمند اين دستور را تشكيل مي‌دهند :

 

1-select
2-from
3-where
4-order by

شكل كلي دستور :

Select [*|distinct column1, column2,…]
From table[,table2,…]
Where شرط
Order by نام فيلد يا شماره فيلد

مثال :

Select * from customers

اين دستور تمام ركوردهاي جدول customers را برمي‌گرداند. كه نتيجه 91 سطر از اطلاعات اين جدول خواهد بود

 

حال  اگر شرط

Country ='uk'

اضافه كنيم ، فقط اطلاعات مشتريان انگليس جواب خواهند بود كه به 7 سطر تقليل مي‌يابد.

select * from customers
where Country ='uk'

 

حال

select City,Country from customers
order by city

فقط ستونهاي نام شهر (city) و نام كشور (Country) را بر گردانده و بر اساس نام شهر مرتب ميكند. دستور بالا با دستور پايين هردو يك جواب را ميدهند :


select City,Country from customers
order by 1

 

كه 91 سطر بازگردانده خواهد شد . در نتيجه پرس و جو تعدادي سطر تكراري وجود دارد مانند شهر London  كه اگر از كلمه Distinct‌ در Select  استفاده كنيم اين سطرهاي تكراري حذف خواهد شد .


select distinct City,Country from customers
order by 1

 

و جواب 69 سطر خواهد بود.

 

استفاده از توابع در Select

1- Count  :

تعداد سطرهاي بازگردانده شده توسط select  را ميشمارد.

 

Select  Count(*)  from  Customers

 

where  Country ='uk'

 

در اصل تعداد مشترياني را ميشمارد كه در كشور انگليس هستند. كه عدد 7 جواب است.



2- Sum :

مجموع يك فيلد عددي را برمي‌گرداند.


Select  sum(Quantity)  from [Order Details]

 

مجموع فيلد Quantity  را براي فيلدهايي كه شماره محصول آنها ( Productid) برابر 11 است را محاسبه ميكند


نكته 1  :

 در دستور select  مي‌توان از اسم مستعار استفاده كرد ، يعني نام جديدي را براي يك ستون در نظر گرفت  به عنوان مثال select قبل را  به شكل زير بكار برد :


Select  sum(Quantity)  as Sum_QTY
from [Order Details]
where productid = 11

 

كه Sum_QTY يك اسم مستعار براي مجموع است. استفاده از كلمه كليديas  ‌اختياري است.


نكته 2  :

 در دستور select  هرگاه اسم فيلدي اسم خاص باشد و يا فاصله بين اسم باشد مثل  Order Details  كه فاصله بين اسم جدول است حتماُ از علامت براكت []  ميبايست استفاده كرد.


نكته 3 :

استفاده از group by   :

 

هنگامي كه از توابع count ‌   و  Sum  به همراه يك  فيلد ديگر در دستور          select  استفاده مي‌شود از group by    استفاده مي‌كنيم .

 

به عنوان مثال دستور زير جمع مقادير  فيلد  Quantity  را براي هر شماره محصول  محاسبه ميكند .


Select  productid, sum(Quantity) as sum_qty
from [Order Details]
group by  productid

 

 كه نتيجه مانند زير خواهد بود :


productid   sum_qty     

---------------------- 

61         603

3          328

32         297

6          301

41         981

64         740

9          95

12         344

 

در صورتيكه دستور ordr by 1  بعد از group by  استفاده كنيم نتيجه بر اساس كد محصول مرتب خواهد شد.

 

آموزش SQL SERVER
نكته 4 :

دستور  where   مي تواند خود  شامل  يك دستور select    باشد :

select * from Products
where ProductID  in
    ( select distinct ProductID from [order details] where Quantity >70)
order by ProductID

 

تنها نكته اي كه مي بايست توجه كرد اين است كه نام فيلدي كه در شرط آورده مي شود حتما در دستور select   آورده شود, به عبارت ديگر select   درون شرط تنها يك ستون را مي بايست برگرداند .

 

تمرين :  با فرض اينكه دو جدول Products و order details داراي ستون (فيلد) يكسان  ProductID  هستند , يك دستور Select  بنويسيد كه تمام فيلدهايي از Products را نشان دهد كه فيلد ProductID  آن با ProductID  جدول order details يكي باشد.؟

 

حل :  

Select pr.*
From  Products  as pr , [order details] as od
Where pr. ProductID = od. ProductID

 

قابل به ذكر است كه بيش از 90% از كارهايي كه ما برروي جداول انجام مي دهيم با select  و تركيبات آن انجام مي شود. لذا بدست آوردن تبحر در نوشتن select  ها مي تواند شما را در تهيه برنامه ها ياري كند.

تدریس SQL SERVER

3-Min,max :

بيشترين و كمترين مقدار فيلد را در بانك اطلاعاتي بدست مي دهد.

Select min (Quantity)
from [Order Details]


4-Top n :

تعداد n سطر اول بانك اطلاعاتي را برمي گرداند.

Select top 5 *
from [Order Details]

 

5 سطر اول بانك را برمي گرداند.

 

نكته 3 :  در حالت بالا اگر مقدار سطر 5 و 6 يكي باشد فقط سطر 5 جواب خواهد بود براي گريز از اين حالت از شكل زير در اين دستور استفاده ميكنيم :

 

Select top n with ties   *

 

From table


5-Into

Select * from table1 into table2

 

اطلاعات table1 را به table2 كپي ميكند. البته table2 بايد از قبل وجود نداشته باشد.

 

اين دستور خود table2  را ميسازد.

دستور select قويترين و كاربردي ترين دستور در sql است كه خود ماهها نيازمند تمرين و آموزش است . براي اطلاعات بيشتر به books online خود Sql Server  مراجع كنيد.

دستور Delete

 

براي حذف اطلاعات از يك بانك اطلاعاتي استفاده ميشود.

 

شكل كلي دستور :


Delete table1
Where شرط

مثال :

 

فرض كنيد جدول authors موجود باشد و فيلد كليد آن au_id باشد. براي حذف 10 سطر اول اين جدول از دستور زير استفاده مي كنيم :


DELETE authors
FROM
(SELECT TOP 10 * FROM authors) AS t1
WHERE authors.au_id = t1.au_id

دستور insert

 

براي اضافه كردن اطلاعات به يك جدول از اين دستور استفاده ميشود.


Insert into table1 (f1,f2,…)
Values (v1,v2,…)

 

كه f1,f2  نام فيلدها و v1,v2  مقادير آنها ميباشد.

 

البته ميتوانيد مقادير را نتيجه يك select  قرار داد.

مثال :


Insert into table1
Select top 10
From table2

 

مقدار 10 سطر اول را   از table2 را در table1 درج ميكند. البته بايد تعداد فيلدها يكي باشد. در غير اينصورت از values استفاده كنيد.



:: برچسب‌ها: آموزش SQL SERVER , تدریس SQL SERVER , آموزش SQL , آموزش SQL SERVER 2008 , دوره آموزشی SQL SERVER ,
:: بازدید از این مطلب : 111
|
امتیاز مطلب : 1
|
تعداد امتیازدهندگان : 1
|
مجموع امتیاز : 1
تاریخ انتشار : یک شنبه 20 فروردين 1391 | نظرات ()

صفحه قبل 1 2 3 4 صفحه بعد